package dry.example.gui;

import javax.swing.*;
import java.awt.*;

public class TabbedPaneDemo {
    public static void main(String[] args) {
        // 创建主窗口
        JFrame frame = new JFrame("Java Swing JTabbedPane 示例");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 500);

        // 创建一个 JTabbedPane
        JTabbedPane tabbedPane = new JTabbedPane();

        // Tab 1: 表格页面
        JPanel tablePanel = createTablePanel();
        tabbedPane.addTab("用户信息", null, tablePanel, "展示用户数据");

        // Tab 2: 简单表单页面
        JPanel formPanel = createFormPanel();
        tabbedPane.addTab("添加用户", null, formPanel, "输入新用户信息");

        // Tab 3: 关于页面
        JPanel aboutPanel = createAboutPanel();
        tabbedPane.addTab("关于", null, aboutPanel, "程序说明");

        // 添加 Tab 到窗口
        frame.add(tabbedPane);

        // 显示窗口
        frame.setVisible(true);
    }

    // 创建第一个 Tab 页面（表格）
    private static JPanel createTablePanel() {
        JPanel panel = new JPanel(new BorderLayout());

        // 表头
        String[] columnNames = {"ID", "姓名", "年龄", "城市"};
        // 数据
        Object[][] data = {
                {1, "张三", 28, "北京"},
                {2, "李四", 32, "上海"},
                {3, "王五", 25, "广州"},
                {4, "赵六", 30, "深圳"}
        };

        // 创建表格和滚动条
        JTable table = new JTable(data, columnNames);
        JScrollPane scrollPane = new JScrollPane(table);

        panel.add(scrollPane, BorderLayout.CENTER);
        return panel;
    }

    // 创建第二个 Tab 页面（简单表单）
    private static JPanel createFormPanel() {
        JPanel panel = new JPanel(new GridLayout(4, 2));

        panel.add(new JLabel("姓名："));
        panel.add(new JTextField());

        panel.add(new JLabel("年龄："));
        panel.add(new JTextField());

        panel.add(new JLabel("城市："));
        panel.add(new JTextField());

        JButton button = new JButton("提交");
        panel.add(new JLabel());
        panel.add(button);

        return panel;
    }

    // 创建第三个 Tab 页面（关于）
    private static JPanel createAboutPanel() {
        JPanel panel = new JPanel();
        JLabel label = new JLabel("这是一个使用 JTabbedPane 的 Swing 示例程序。");
        panel.add(label);
        return panel;
    }
}
